<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <input type="file" name="file" onchange="uploadFile(this);"/>
    </div>
    <div>
        <pre id="ret-content"></pre>
    </div>
    <script> 
        function uploadFile(t){
            if(t.files.length<=0) return;

            // FormData接口提供了一种表示表单数据的键值对 key/value 的构造方式
            // 并且可以轻松的将数据通过XMLHttpRequest.send()方法发送出去
            let fm=new FormData();
            
                    //这个是name值
            fm.append('image',t.files[0])//向FormData中添加新的属性值
            //FormData对应的属性值存在也不会覆盖原值，而是新增一个值，如果属性不存在则新增一项属性值
            
            //fetch必须接受一个资源路径作为参数，并且返回了一个promise，所以可以直接链式调用
            fetch('/upload',{//不是http开头，没法发起请求，所以不能直接打开html文件
                //post方法提交给浏览器解析，返回该 html文本，img的src写要请求的图片资源
                method:'POST',
                body:fm
            })
            .then(res=>{
                return res.text();
            })
            .then(text=>{
                let d=document.getElementById('ret-content');
                d.innerHTML=`<img src="/image/${text}"`+` style="width:80%;height:auto;"/>`;
            });
        }
    </script>
</body>
</html>